C语言 16行代码实现字符串中指定字符串替换

您所在的位置:网站首页 c字符串替换指定字符 string C语言 16行代码实现字符串中指定字符串替换

C语言 16行代码实现字符串中指定字符串替换

#C语言 16行代码实现字符串中指定字符串替换| 来源: 网络整理| 查看: 265

推荐文章

Qt开发一款免费开源功能完整的串口调试、Tcp、Udp调试工具

目录

1. 功能描述

V0.2

V0.3 

2.函数代码

V0.3代码

V0.2代码

1. 功能描述 V0.2 任意长度字符串替换中文替换 V0.3  重新实现,大字符串替换性能嗖嗖

        注意:替换后的存储地要准备足够的空间,防止内存越界

        其他字符串函数CSDN

2.函数代码

应粉丝需求,一个3.9M的文件做 字符串替换,3年前的V0.2崩溃,修复后性能巨差问题显现,之前没测试过大字符串替换,所以重新实现一下。最近不用linux环境了,用qt写的c代码。参数有所变化,这版速度贼快。

V0.3代码 #include #include /* 功 能:将 src 字符串中的 before 字符串替换为 after 字符串 * 参 数:dest:替换后的字符串存储地 src:操作目标 before :需替换的字符串 after :替换为 * 返回值:返回替换之后的字符串 * 版 本:V0.3 * 注 意:dest要提前准备好足够空间 */ char *strrpc(char *dest,char *src,char *before,char *after){ size_t src_size = strlen(src); size_t before_str_size = strlen(before); size_t after_str_size = strlen(after); size_t dest_offset = 0; for(size_t src_offset = 0;src_offset < src_size; ){ if(!strncmp(src + src_offset,before,before_str_size)){ memcpy(dest + dest_offset,after, after_str_size); src_offset += before_str_size; dest_offset += after_str_size; }else{ memmove(dest + dest_offset,src + src_offset,1); dest_offset++; src_offset++; } } return dest; } int main(int argc, char *argv[]) { QApplication a(argc, argv); char str[] = "Hello,中国!"; char dest[1024]; memset(dest,0,1024); strrpc(dest,str,"中国","世界"); qDebug()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3